package domain;

import java.util.HashSet;
import java.util.Set;

import domain.interfaces.IdObject;

public class ContactGroup implements IdObject {
	private long id;
	private String groupName;
	private Set<Contact> listOfContacts = new HashSet<Contact>();
	private int version = 1;
	
	public ContactGroup(){};
	
	public ContactGroup(String groupName)
	{
		this.groupName = groupName;
	}
	
	/**
	 * Rend une liste des contacts du groupe
	 * @return Une liste contenant tous les contacts du groupe
	 */
	public Set<Contact> getListOfContacts()
	{
		return this.listOfContacts;
	}
	
	/**
	 * Remplace la liste de contacts actuels par celle passée en paramètre
	 * @param contacts une liste de contacts
	 */
	public void setListOfContacts(Set<Contact> contacts)
	{
		this.listOfContacts = contacts;
	}
	
	/**
	 * Ajoute un contact a la liste des contacts du groupe
	 * @param c le contact a ajouter 
	 */
	public void addContact(Contact c)
	{
		this.listOfContacts.add(c);
	}
	
	/**
	 * Retire un contact de la liste des contacts du groupe
	 * @param c le contact a retirer
	 */
	public void removeContact(Contact c)
	{
		this.listOfContacts.remove(c);
	}
	
	/**
	 * Retourne la valeur de l'id du groupe 
	 * @return l'identifiant du groupe
	 */
	public long getId()
	{
		return this.id;
	}
	
	/**
	 * Remplace l'ancienne valeur de l'id par la nouvelle 
	 * @param groupId la nouvelle id du groupe 
	 */
	public void setId(long groupId)
	{
		this.id = groupId;
	}
	
	public String getGroupName()
	{
		return this.groupName;
	}
	
	public void setGroupName(String groupName)
	{
		this.groupName = groupName;
	}
	
	
}
